<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta name="GENERATOR" content="Mozilla/4.5 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
    <title>TAO IDL compiler User's Guide</title>
    <!-- $Id$ -->
  </head>
  <body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#CC0000">
    <hr>
    <h3>Using The generate_component_mpc.pl Script</h3>
    This document describes the options and usage of the Perl script <tt>generate_component_mpc.pl</tt>
    in the <tt>$(CIAO_ROOT)/bin</tt> directory.
    <HR>
    <P>
      <h4>Assumptions</h4>
      This script is useful for generating MPC files for relatively simple component
      applications. The string name passed to the script should be the name of the <em>single</em>
    IDL file for that build (without the extension) and also the name of the single
    CIDL file, if it is a component build. The names of export files, preprocessor
    macros, and library names in the generated MPC file will all be constructed
    from this string. It is also assumed that the IDL file for a component build
    will contain a single component declaration.
    <P>
    Judicious use of the script options in the table below will generate a build
    that keeps to a minimum both the code generated from IDL and the number of
    linked libraries from the middleware.
    <P>
      <HR>
      <h4><A NAME="options">Script Options</A></h4>

      <table BORDER="2" CELLSPACING="2" CELLPADDING="0">
        <tr>
          <th>
            Option</th>
          <th>
            Description</th>
          <th>
            Remark</th>
        </tr>
        <tr>
          <a NAME="h">
            <td><tt>-h</tt></td>
            <td>The compiler prints out the options that are given below and exits clean
            </td>
            <td>&nbsp;</td>
        </tr>
        <tr>
          <a NAME="p">
            <td><tt>-p</tt><i> string</i></td>
            <td>Indicates another make/project that this one depends on</td>
            <td>Used as a project name prefix unless overridden by <tt>-u</tt> option</td>
        </tr>
        <tr>
          <a name="l">
            <td><tt>-l</tt><i> string</i></td>
            </td>
            <td>Path to the dependent name value of <tt>-p</tt></td>
            <td>Needed only if the dependent make/project isn't already in the search path</td>
        </tr>
        <tr>
          <a name="n">
            <td><tt>-n</tt></td>
            <td>Non-component make/project</td>
            <td>Generates a <tt>*_stub</tt> and <tt>*_skel</tt> pair of builds, instead
                of the default <tt>*_stub</tt>, <tt>*_svnt</tt> and <tt>*_exec</tt>
                builds. Also specializes the IDL compiler command line options and linked
                lib list, depending on the <tt>-e</tt> option, if it exists</td>
        </tr>
        <tr>
          <a name="e">
            <td><tt>-e</tt></td>
            <td><tt>eventtype</tt> declaration present in IDL</td>
            <td>Has no effect unless the <tt>-n</tt> option is also present, in which
                case the IDL compiler command line options and list of linked libs will
                change to reflect the fact that IDL eventtypes require typecode support
                and depend on libs in CIAO, which for a non-component build would
                otherwise not be the case</td>
        </tr>
        <tr>
          <a name="i">
            <td><tt>-i</tt></td>
            <td>Use an executor IDL file</td>
            <td>Indicates the presence of an IDL file in the executor make/project,
                from which the actual executor implementation will inherit. Assumes
                the name of this IDL file is of the form <tt>[<i>component_name</i>]EI.idl</tt></td>
        </tr>
        <tr>
          <a name="c">
            <td><tt>-c</tt></td>
            <td>Create a client make/project</td>
            <td>Generates a build for a "driver" executable. Assumes there is a single
                C++ source file named <tt>client.cpp</tt></td>
        </tr>
        <tr>
          <a name="u">
            <td><tt>-u</tt></tt><i> string</i></td>
            <td>Unique project name prefix</td>
            <td>Occasionally needed since MPC doesn't accept duplicate project names
                anywhere in the tree over which it is proecessing. This option
                overrides the value of the <tt>-p</tt> option, if present</td>
        </tr>
      </table>
  </body>
</html>
